package com.sxj.corejava.code11_io.File;

import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

/**
 * @author 石小俊
 */
public class Test02_定义方式 {

    public static void main(String[] args) throws URISyntaxException {
        // 定义方式一:参数是一个具体的路径名+文件名
        File file = new File("corejava/a.txt");
        System.out.println(file.exists());

        // 定义方式二:根据指定的目录名与文件名找到对应文件
        // 参数一:目录名
        // 参数二:文件名
        File file2 = new File("E:\\test", "aa.txt");
        System.out.println(file2.exists());

        // 定义方式二:根据指定的目录对象与文件名找到对应文件
        // 参数一:目录对象
        // 参数二:文件名
        File parent = new File("E:\\test");
        File file3 = new File(parent, "aa.txt");
        System.out.println(file3.exists());

        // 定义方式四:根据URI地址来找到File对象
        // URI(Uniform Resource Identifier):统一资源标识符
        // 是一个用于标识某一互联网资源名称的字符串,类似于之前访问Properties文件的方式
        // 可以通过当前类的类加载器找到对应URI地址
        // 通过类名.class.getClassLoader()获取到当前类所在的类加载器
        URI uri = Test02_定义方式.class.getClassLoader()
                // 在类加载器中,其类加载器的根目录相当于项目资源的src目录
//                .getResource("user.properties")
                // 如果找的资源不在src根目录中,其值需要通过路径名+文件名
                .getResource("com/sxj/corejava/hello.txt")
                // 将得到的URL地址转换成URI地址
                .toURI();
        File file4 = new File(uri);
        System.out.println(file4.exists());


    }

}
